﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using Warranty.Model.Interface;

namespace Warranty.Provider
{
    public class ProviderFactory : IProviderFactory
    {
        private IDealerProvider dealers = null;
        public IDealerProvider Dealers
        {
            get
            {
                if (dealers == null) dealers = new DealerProvider();
                return dealers;
            }
        }

        private IOrderShipHistProvider orderShipHist = null;
        public IOrderShipHistProvider OrderShipHist
        {
            get
            {
                if (orderShipHist == null) orderShipHist = new OrderShipHistProvider();
                return orderShipHist;
            }
        }


        private IWarrantyMasterProvider warrantyMessage = null;
        public IWarrantyMasterProvider WarrantyMaster
        {
            get
            {
                if (warrantyMessage == null) warrantyMessage = new WarrantyMasterProvider();
                return warrantyMessage;
            }
        }

        private IWarrantyHistoryProvider warrantyHistory = null;
        public IWarrantyHistoryProvider WarrantyHistory
        {
            get
            {
                if (warrantyHistory == null) warrantyHistory = new WarrantyHistoryProvider();
                return warrantyHistory;
            }
        }

        private IWarrantyMessageProvider warrantyMessage0 = null;
        public IWarrantyMessageProvider WarrantyMessage
        {
            get
            {
                if (warrantyMessage0 == null) warrantyMessage0 = new WarrantyMessageProvider();
                return warrantyMessage0;
            }
        }

        private IMessageHistoryProvider messageHistory = null;
        public IMessageHistoryProvider MessageHistory
        {
            get
            {
                if (messageHistory == null) messageHistory = new MessageHistoryProvider();
                return messageHistory;
            }
        }

        private IMessageSendProvider messageSend = null;
        public IMessageSendProvider MessageSend
        {
            get
            {
                if (messageSend == null) messageSend = new MessageSendProvider();
                return messageSend;
            }
        }

        private IAddWMSinpLogProvider addWMSinpLogs = null;
        public IAddWMSinpLogProvider AddWMSinpLogs
        {
            get
            {
                if (addWMSinpLogs == null) addWMSinpLogs = new AddWMSinpLogProvider();
                return addWMSinpLogs;
            }
        }

        private ICbuHistIfProvider cbuHistIf = null;
        public ICbuHistIfProvider CbuHistIf
        {
            get
            {
                if (cbuHistIf == null) cbuHistIf = new CbuHistIfProvider();
                return cbuHistIf;
            }
        }

        private ISerialNoPrintedProvider serialNoPrinted = null;
        public ISerialNoPrintedProvider SerialNoPrinted
        {
            get
            {
                if (serialNoPrinted == null) serialNoPrinted = new SerialNoPrintedProvider();
                return serialNoPrinted;
            }
        }

        private IWorkOrderProvider workOrders = null;
        public IWorkOrderProvider WorkOrders
        {
            get
            {
                if (workOrders == null) workOrders = new WorkOrderProvider();
                return workOrders;
            }
        }

        private IPndHistoryProvider pndHistory = null;
        public IPndHistoryProvider PndHistory
        {
            get
            {
                if (pndHistory == null) pndHistory = new PndHistoryProvider();
                return pndHistory;
            }
        }

        private IResponseSMSProvider responseSMS = null;
        public IResponseSMSProvider ResponseSMS
        {
            get
            {
                if (responseSMS == null) responseSMS = new ResponseSMSProvider();
                return responseSMS;
            }
        }
    }
}
